<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>是让两个工作者线程之间直接通信</title>
</head>

<body>
    <div class="main">
        <div class="intro">
            <p>使用 MessageChannel 实例与父页面通信很大程度上是多余的。这是因为全局 postMessage()
                方法本质上与 channel.postMessage()执行的是同样的操作（不考虑 MessageChannel 接口的其他
                特性）。MessageChannel 真正有用的地方是让两个工作者线程之间直接通信。这可以通过把端口传给
                另一个工作者线程实现。下面的例子把一个数组传给了一个工作者线程，这个线程又把它传另一个工作
                者线程，然后再传回主页</p>

            <p>在这个例子中，数组的每一段旅程都会添加一个字符串，标识自己到过哪里。数组从父页面发送到
                工作者线程，工作者线程会加上自己的上下文标识符。然后，数组又从一个工作者线程发送到另一个工
                作者线程。第二个线程又加上自己的上下文标识符，随即将数组发回主页，主页把数组打印出来。这个
                例子中的两个工作者线程使用了同一个脚本，因此要注意数组可以双向传递</p>

            <p>
                main.js:9 (3) ['page', 'workerA', 'workerB']
main.js:8 (3) ['page', 'workerB', 'workerA']
            </p>
        </div>
    </div>
    <script src="./main.js"></script>
</body>

</html>